<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/TR/xhtml1/strict">
<head>
<title>Overview</title>
<meta content="1999-2002 The Apache Software Foundation" name="copyright"/>
<meta content="$Date: 2002/09/20 21:35:31 $" name="last-changed"/>
<meta content="Jean-Frederic Clere" name="author"/>
<meta content="jfrederic.clere@fujitsu-siemens.com" name="email"/>
<meta content="Henri Gomez" name="author"/>
<meta content="hgomez@apache.org" name="email"/>
<link href="./style.css" type="text/css" rel="stylesheet"/>
<link href="images/tomcat.ico" rel="shortcut icon"/>
</head>
<body link="#525D76" vlink="#525D76" alink="#525D76" text="#000000" bgcolor="#ffffff">
<a name="TOP"/>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr height="1">
<td class="nil" height="1" bgcolor="#ffffff" width="150">
<img hspace="0" vspace="0" height="1" width="150" border="0" src="images/pixel.gif"/>
</td>
<td class="nil" height="1" bgcolor="#ffffff" width="*">
<img hspace="0" vspace="0" height="1" width="370" border="0" src="images/pixel.gif"/>
</td>
</tr>
<tr>
<td width="*" colspan="2" class="logo" bgcolor="#ffffff">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="left">
<img align="left" height="75" width="270" border="0" src="images/jakarta.gif"/>
</td>
<td align="right">
<img align="right" border="0" src="images/mod_jk.jpeg"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" width="*" align="right" class="head" bgcolor="#999999">
<nobr>
<a href="http://www.apache.org/" class="head">Apache Software Foundation</a> |
                <a href="http://jakarta.apache.org/" class="head">Jakarta Project</a> |
                <a href="http://jakarta.apache.org/tomcat/" class="head">Apache Tomcat</a>
</nobr>
</td>
</tr>
<tr>
<td valign="top" width="150" bgcolor="#ffffff">
<table class="menu" cellpadding="0" cellspacing="0" width="150" border="0">
<tr height="1">
<td class="nil" height="1" bgcolor="#cccccc" width="10">
<img hspace="0" vspace="0" height="1" width="10" border="0" src="images/pixel.gif"/>
</td>
<td class="nil" height="1" bgcolor="#cccccc" width="140">
<img hspace="0" vspace="0" height="1" width="140" border="0" src="images/pixel.gif"/>
</td>
</tr>
<tr height="6">
<td colspan="2" width="150" bgcolor="#d0d0d0">Presentation</td>
</tr>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a class="menu" href="index.html">Overview</a>
</nobr>
</td>
</tr>
<tr height="2"/>
<tr>
<td width="10" bgcolor="#cccccc"/>
<td width="140" bgcolor="#cccccc">
<a href="#What's JK ?" class="menu">What's JK ?</a>
</td>
</tr>
<tr height="1"/>
<tr>
<td width="10" bgcolor="#cccccc"/>
<td width="140" bgcolor="#cccccc">
<a href="#Why should I use the JK ?" class="menu">Why should I use the JK ?</a>
</td>
</tr>
<tr height="1"/>
<tr>
<td width="10" bgcolor="#cccccc"/>
<td width="140" bgcolor="#cccccc">
<a href="#What's the difference between JK and JK2 ?" class="menu">What's the difference between JK and JK2 ?</a>
</td>
</tr>
<tr height="1"/>
<tr>
<td width="10" bgcolor="#cccccc"/>
<td width="140" bgcolor="#cccccc">
<a href="#Are there alternative ways to connect Apache and Tomcat?" class="menu">Are there alternative ways to connect Apache and Tomcat?</a>
</td>
</tr>
<tr height="1"/>
<tr height="6"/>
<tr height="6">
<td colspan="2" width="150" bgcolor="#d0d0d0">Commons</td>
</tr>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a class="menu" href="common/AJPv13.html">AJPv13</a>
</nobr>
</td>
</tr>
<tr height="2"/>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a class="menu" href="common/AJPv14-proposal.html">AJPv14 Proposal</a>
</nobr>
</td>
</tr>
<tr height="2"/>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a class="menu" href="faq.html">FAQ</a>
</nobr>
</td>
</tr>
<tr height="2"/>
<tr height="6"/>
<tr height="6">
<td colspan="2" width="150" bgcolor="#d0d0d0">JK</td>
</tr>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a class="menu" href="jk/aphowto.html">Apache HowTo</a>
</nobr>
</td>
</tr>
<tr height="2"/>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a class="menu" href="jk/domhowto.html">Domino HowTo</a>
</nobr>
</td>
</tr>
<tr height="2"/>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a class="menu" href="jk/iishowto.html">IIS HowTo</a>
</nobr>
</td>
</tr>
<tr height="2"/>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a class="menu" href="jk/neshowto.html">Netscape/iPlanet HowTo</a>
</nobr>
</td>
</tr>
<tr height="2"/>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a class="menu" href="jk/workershowto.html">Workers HowTo</a>
</nobr>
</td>
</tr>
<tr height="2"/>
<tr height="6"/>
<tr height="6">
<td colspan="2" width="150" bgcolor="#d0d0d0">JK2</td>
</tr>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a class="menu" href="jk2/configtc.html">Configuration in the Tomcat</a>
</nobr>
</td>
</tr>
<tr height="2"/>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a class="menu" href="jk2/configweb.html">Configuration in the Web Server</a>
</nobr>
</td>
</tr>
<tr height="2"/>
<tr height="6"/>
<tr height="6">
<td colspan="2" width="150" bgcolor="#d0d0d0">
                Developpers
                </td>
</tr>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a href="./api-java/index.html" class="menu">Java API Documentation</a>
</nobr>
</td>
</tr>
<tr>
<td colspan="2" width="150" bgcolor="#cccccc">
<nobr>
<a href="./api-c/" class="menu">C API Documentation</a>
</nobr>
</td>
</tr>
</table>
</td>
<td class="body" valign="top" width="*" bgcolor="#ffffff">
<a name="What's JK ?">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="left" valign="top" class="section" bgcolor="#525D76">
<img border="0" vspace="0" hspace="0" align="left" valign="top" src="images/corner.gif"/>What's JK ?</td>
</tr>
</table>
</a>
<p class="section">
<b>
<font color="#333333">JK</font>
</b> is a replacement to the elderly mod_jserv. 
It was a completely new Tomcat-Apache plug-in that handles the communication between Tomcat and Apache.
</p>
<p class="section">
The newest <b>
<font color="#333333">JK2</font>
</b> is a rewrite of <b>
<font color="#333333">JK</font>
</b>.
The native part has been completly
restructured and the configuration has been simplified a lot.
</p>
<p class="section">
JK is more than just an apache module, since it could be used with majors WebServer :
</p>
<ul>
<li>
<b>
<a href="jk/aphowto.html">mod_jk</a>
</b> is an Apache module to be used with <b>
<font color="#333333">Apache 1.3</font>
</b> and <b>
<font color="#333333">2.0</font>
</b> Webservers.
</li>
<li>
<b>
<a href="jk/iishowto.html">isapi</a>
</b> is a redirector to be used with <b>
<font color="#333333">IIS</font>
</b>.
</li>
<li>
<b>
<a href="jk/neshowto.html">nsapi</a>
</b> is a redirector to be used with <b>
<font color="#333333">Netscape/iPlanet</font>
</b>.
</li>
<li>
<b>
<a href="jk/domhowto.html">dsapi</a>
</b> is a redirector to to be used with <b>
<font color="#333333">Domino</font>
</b> but there is less active support on it.
</li>
</ul>
<br/>
<a name="Why should I use the JK ?">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="left" valign="top" class="section" bgcolor="#525D76">
<img border="0" vspace="0" hspace="0" align="left" valign="top" src="images/corner.gif"/>Why should I use the JK ?</td>
</tr>
</table>
</a>
<p class="section">
JK was develop to overcome many limitations of its ancestor, <b>
<font color="#333333">mod_jserv</font>
</b>.
</p>
<p class="section">
<b>
<font color="#333333">mod_jserv</font>
</b> was too complex and because it was ported from Apache/JServ, 
it brought with it lots of JServ specific bits that aren't needed by Apache.
</p>
<p class="section">
Where <b>
<font color="#333333">mod_jserv</font>
</b> supported only Apache webservers on Unix OS, 
<b>
<font color="#333333">JK</font>
</b> supports much more web servers and operating systems through 
via a compatibility layer named the <b>
<font color="#333333">JK library</font>
</b>. 
The layered approach provided by the JK library makes it easier to 
support many different webservers and OS.
</p>
<p class="section">
JK offer better support for SSL, that's was a problem with mod_jserv which couldn't 
reliably identify whether a request was made via HTTP or HTTPS. 
</p>
<p class="section">
JK can, using the newer Ajpv13 protocol which relay many SSL informations required by servlet 2.2 and 2.3 specs.
</p>
<p class="section">
JK offers a lot of different and flexible communications between a Web Server 
and the Tomcat Servlet Engine and could be used today with all of the ASF Tomcat Engines, 
<b>
<font color="#333333">3.2.x</font>
</b>, <b>
<font color="#333333">3.3.x</font>
</b>, <b>
<font color="#333333">4.0.x</font>
</b>, <b>
<font color="#333333">4.1.x</font>
</b> and <b>
<font color="#333333">5.x</font>
</b>
</p>
<br/>
<a name="What's the difference between JK and JK2 ?">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="left" valign="top" class="section" bgcolor="#525D76">
<img border="0" vspace="0" hspace="0" align="left" valign="top" src="images/corner.gif"/>What's the difference between JK and JK2 ?</td>
</tr>
</table>
</a>
<p class="section">
JK2 is a full rewrite of JK and is much more powerfull.
</p>
<p class="section">
Even if it works with Apache 1.3, JK2 has been developed with Apache 2.0 in mind,
and sus is better suited for multi-threaded servers like IIS, NES/iPlanet.
</p>
<p class="section">
JK2 has a better separation between protocol and physical layer.
As such JK2 support fast unix-socket, and could be extended to support others communications
channels. Better it's suited for JNI and JDK 1.4 fast IO APIs
</p>
<p class="section">
JK2 could be monitored via special URLs (like mod_status)
</p>
<br/>
<a name="Are there alternative ways to connect Apache and Tomcat?">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="left" valign="top" class="section" bgcolor="#525D76">
<img border="0" vspace="0" hspace="0" align="left" valign="top" src="images/corner.gif"/>Are there alternative ways to connect Apache and Tomcat?</td>
</tr>
</table>
</a>
<p class="section">
The alternative ways are better described in <b>
<font color="#333333">mod_webapp</font>
</b>
documentation.
</p>
<p class="section">
Check <b>
<font color="#333333">webapp</font>
</b> site for it and then decide if you want to go on reading. 
</p>
<p class="section">
The big advantage of <b>
<font color="#333333">mod_webapp</font>
</b> is that is very easy to configure,
has a well defined protocol named <b>
<font color="#333333">WARP</font>
</b>, does not care about the old
crappy protocols used in Tomcat-3.x and so.
But it would be possible to implement the <b>
<font color="#333333">WARP</font>
</b> protocol in
<b>
<font color="#333333">JK2</font>
</b> ;-))
</p>
<p class="section">
The disadvantage is that it requires the <b>
<font color="#333333">Apache Portable Library</font>
</b>
which is still only easily available via Apache 2.0 and that it didn't support
webservers like IIS, NES/iPlanet or Domino.
</p>
<br/>
</td>
</tr>
</table>
</body>
</html>
